package com.example.ekupiandroid;

import java.util.ArrayList;

import org.json.JSONArray;
import org.json.JSONObject;

import com.example.classes.*;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class KreiranjeKorpe extends Activity {

	private Artikal artikal=null;
	private static ArrayList<Artikal> artikliUKorpi;
	float kolicina = 1;
	EditText et;
	TextView tv;
	float kolicinaPrava = 0;
	
	public static ArrayList<Artikal> getArtikliUKorpi() {
		return artikliUKorpi;
	}

	public void setArtikliUKorpi(ArrayList<Artikal> artikliUKorpi) {
		this.artikliUKorpi = artikliUKorpi;
	}
	
	public void izbaciIzKorpe(int pozicija) {
		artikliUKorpi.remove(pozicija);
	}


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_kreiranje_korpe);
		
		String market = getIntent().getExtras().getString("market");
		tv = (TextView) findViewById(R.id.textView1);
		tv.setText(String.valueOf(market));
		artikliUKorpi = new  ArrayList<Artikal>();
		
		
		Button dodajUKorpu =  (Button)findViewById(R.id.dodajUKorpu);
		Button korpa =  (Button)findViewById(R.id.button1);
		
		populateListView();
		
		korpa.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent korpa = new Intent(getBaseContext(), KorisnickaKorpa.class);
				korpa.putExtra("korisnik", getIntent().getExtras().getString("korisnik"));
				startActivity(korpa);
			}
		});
		
		
		dodajUKorpu.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				//final ListView lista = (ListView) findViewById(R.id.listView1);
				
				//final Artikal art = (Artikal) lista.getSelectedItem();
				et = (EditText) findViewById(R.id.editText3);
				if (et.getText().length() == 0) {
			        Toast.makeText(KreiranjeKorpe.this, "Unesite količinu!", Toast.LENGTH_LONG).show();
			        return;
			      }
				kolicina = Float.parseFloat(et.getText().toString());
				int pom = Float.compare(kolicina, kolicinaPrava);
				if(pom > 0){
					Toast.makeText(KreiranjeKorpe.this, "Poslovnica nema na stanju dovoljan broj artikala!", Toast.LENGTH_LONG).show();
			        return;
				}
				artikal.setKolicina(kolicina);
				artikliUKorpi.add(artikal);
				Toast.makeText(KreiranjeKorpe.this, "Artikal uspješno dodan u korpu!", Toast.LENGTH_LONG).show();
				//Toast.makeText(getApplicationContext(), artikal.getIdArtikal()+"bal bla", Toast.LENGTH_SHORT).show();
			}
		});
		
		
	}


	private void populateListView() {
		// TODO Auto-generated method stub
		
		final ArrayList<String> nizNazivMarketa = new ArrayList<String>();
		nizNazivMarketa.add("patka");
		
		
		final ArrayList<Artikal> artikli = new ArrayList<Artikal>();
		
		Thread t = null;
		try {
			t = new Thread (new Runnable() {
				@Override
				public void run() {
					String odgovor = null;
					try {
						WebServiceRequest wst = new WebServiceRequest(WebServiceRequest.GET_TASK);
						
						String idPoslovnice = null;
						Bundle extras = getIntent().getExtras();
						if (extras != null) {
						    idPoslovnice = extras.getString("IdPoslovnice");
						}
						
						
						wst.AddHeader("idPoslovnica", idPoslovnice);
						odgovor = wst.Execute("http://10.0.2.2:8080/eKupovina/webservices/artikli/sviUPoslovnici");
						
						JSONObject json = new JSONObject(odgovor);
						JSONArray jArray = json.getJSONArray("artikal");
						
						for(int i=0;i<jArray.length();i++){


							 JSONObject json_data = jArray.getJSONObject(i);
							 Artikal art = new Artikal();
							 art.setCijena((float)json_data.getDouble("cijena"));
							 art.setDaLiJeNaAkciji(json_data.getBoolean("daLiJeNaAkciji"));
							 art.setIdArtikal(json_data.getInt("idArtikal"));
							 art.setKolicina((float)json_data.getDouble("kolicina"));
							 art.setPoslovnica_idPoslovnica(json_data.getInt("poslovnica_idPoslovnica"));
							 art.setProizvod_idProizvod(json_data.getInt("proizvod_idProizvod"));
							 kolicinaPrava = art.getKolicina();
							 
							 JSONObject proizvod = json_data.getJSONObject("proizvod");
							 Proizvod p = new Proizvod();
							 p.setNaziv(proizvod.getString("naziv"));
							 p.setIdProizvod(proizvod.getInt("idProizvod"));
							 
							 
							 JSONObject vrsta = proizvod.getJSONObject("vrsta");
							 Vrsta v = new Vrsta();
							 v.setIdVrsta(vrsta.getInt("idVrsta"));
							 v.setNaziv(vrsta.getString("naziv"));
							 
							 JSONObject tip = vrsta.getJSONObject("tip");
							 Tip t = new Tip();
							 t.setIdTip(tip.getInt("idTip"));
							 t.setNaziv(tip.getString("naziv"));
							 
							 v.setTip(t);
							 p.setVrsta(v);
							 art.setProizvod(p);
							 artikli.add(art);
							 nizNazivMarketa.add(p.getNaziv() + "   "+ art.getCijena());
							 
						}
					} catch (Exception e1) {
						e1.printStackTrace();
					}
				}
			});
		} catch (Exception e) {
			e.printStackTrace();
		}
		t.start();
		
		//nizNazivMarketa.add(""+nizNazivMarketa.size());
		ArrayAdapter<Artikal> adapter=new ArrayAdapter<Artikal>(this,
                android.R.layout.simple_list_item_1, artikli);
		
		//ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,
               // android.R.layout.simple_list_item_1, nizNazivMarketa);
		
		final ListView lista = (ListView) findViewById(R.id.listView1);
		lista.setAdapter(adapter);
		//lista.setChoiceMode(AbsListView.CHOICE_MODE_SINGLE);
		
		
		lista.setOnItemClickListener(new OnItemClickListener() {

		       public void onItemClick(AdapterView<?> parent,
		                    View arg1, int position, long arg3)
		        {
		    	   artikal = (Artikal) parent.getItemAtPosition(lista.getFirstVisiblePosition() + position);
		    	   //final String selectedItem = parent.getItemAtPosition(lista.getFirstVisiblePosition() + position).toString();
		    	   //final String selectedItem = ""+art.getIdArtikal();

		            //final String selectedItem = lista.getSelectedItem().toString();
		            runOnUiThread(new Runnable() {
					     @Override
					     public void run() {
					    	 EditText brojArtikala = (EditText) findViewById(R.id.editText1);
					    	 brojArtikala.setText(""+artikal.getKolicina());
					    	 EditText cijenaArtikla = (EditText) findViewById(R.id.editText2);
					    	 cijenaArtikla.setText(""+artikal.getCijena());

					    }
					});
		        }});
		
	}


	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.kreiranje_korpe, menu);
		return true;
	}

	
	
	
	
}
